package com.kerrykidz.promotion.service;

import java.util.List;

import javax.servlet.http.HttpSession;

import com.kerrykidz.dao.model.GblPosDiscountEntity;
import com.kerrykidz.promotion.dao.model.ProCampaignEntity;
import com.kerrykidz.promotion.dao.model.ProGblPrdEntity;
import com.kerrykidz.system.vo.UserInfo;
import com.rdp.framework.exception.RDPException;
import com.rdp.util.model.TreeModel;
/**
 * 
 * @ClassName: IPromotionService 
 * @description: 促销管理
 * @author: wolf-yansl 
 * @date: 2014年9月9日 下午2:11:06 
 * @version: V1.0
 *
 */
public interface IPromotionService {
	
	/**
	 * 首页查询
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	public List<ProCampaignEntity> findLikeCampNameOrTime(ProCampaignEntity entity,HttpSession session)throws RDPException;
	
	/***
	 * 活动编号查询
	 * @param campId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月11日
	 */
	public ProCampaignEntity findByCampId(ProCampaignEntity entity)throws RDPException;
	/**
	 *  保存促销活动
	 * @param entity 促销对象
	 * @param prdlist 促销商品ID
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	public ProCampaignEntity saveProCampaignEntity(ProCampaignEntity entity,List<String> prdlist,UserInfo user)throws RDPException;
	public ProCampaignEntity updateProCampaignEntity(ProCampaignEntity entity,List<String> prdlist,UserInfo user)throws RDPException;
	public ProCampaignEntity updateProCampaignFlow(ProCampaignEntity entity,List<String> prdlist,UserInfo user)throws RDPException;
	
	public void updateProCampaignStatus(ProCampaignEntity entity)throws RDPException;
	public void deleteProCampaignEntity(ProCampaignEntity entity,UserInfo user)throws RDPException;
	/***
	 * 获取所有打折数据
	 * @return
	 * @date: 2014年9月9日
	 */
	public List<GblPosDiscountEntity> findGblDiscountAll() throws RDPException;
	
	/**
	 * 获取可促销的商品  
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月9日
	 */
	public List<ProGblPrdEntity> findLikePrdIdOrPrdName(ProGblPrdEntity entity) throws RDPException;
	/**
	 * 获取指定商品分类 的 促销商品
	 * @param entity
	 * @param pid 商品分类id
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月10日
	 */
	public List<ProGblPrdEntity> findByCatePrdIdOrPrdName(ProGblPrdEntity entity,String pid) throws RDPException;
	 
	/**
	 * 获取商品分类所有节点
	 * @param pid
	 * noteList 存放节点数据
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月10日
	 */
	public void findPrdCateAll(String pid,List<TreeModel> noteList) throws RDPException;
	/**
	 * 获取活动关联商品Id
	 * @param campId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月11日
	 */
	public List<String> findByProCampPrdIdAll(String campId) throws RDPException;
}
